home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fatted Calf
/
The Fatted Calf.iso
/
Demos
/
ByCompany
/
TipTop_Software
/
TipTop
/
Supplement
/
src
/
Z301
/
genie.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-05-08
|
2KB
|
112 lines
/*
*
* Rev 5-25-89
* This file contains GEnie specific code for setting terminal modes,
* very little is specific to ZMODEM or YMODEM per se (that code is in
* sz.c and rz.c). The CRC-16 routines used by XMODEM, YMODEM, and ZMODEM
* are also in this file, a fast table driven macro version
*
* This file is #included so the main file can set parameters such as HOWMANY.
* See the main file rz.c for compile instructions.
*/
#include <string.h>
#include <fcntl.h>
#define XARGSFILE "/"
#define XX
STATIC char Myattn[] = { 0335, 0336, 0336, 0,
0335, 0336, 0336, 24,24,24,24,24,24,24,24,24,24,13
};
#define ALTCANOFF 4
/*
extern unsigned int _fmode = O_BINARY;
*/
/*
* return 1 iff stdout and stderr are different devices
* indicating this program operating with a modem on a
* different line
*/
int Fromcu; /* Were called from cu or yam */
from_cu()
{
return 0;
}
cucheck()
{
}
int Twostop; /* Use two stop bits */
/*
* mode(n)
* 3: save old tty stat, set raw mode with flow control
* 2: set XON/XOFF for sb/sz with ZMODEM or YMODEM-g
* 1: save old tty stat, set raw mode
* 0: restore original tty mode
*/
mode(n)
{
static did0 = FALSE;
vfile("mode:%d", n);
switch(n) {
case 2: /* Un-raw mode used by sz, sb when -g detected */
case 1:
case 3:
did0 = TRUE;
system("set x on");
system("set e off");
system("set t13,10");
/*
system("set b3");
*/
reset(1);
binary(1);
/* Assume fd 1 is stdout (not documented in GEnie) */
fcntl(1, F_SETFL,
((fcntl(1, F_GETFL, 0)|O_BINARY)& ~O_POST_BREAK));
return OK;
case 0:
if(!did0)
return ERROR;
return OK;
default:
return ERROR;
}
}
sendbrk()
{
}
/*
* readline(timeout) reads character(s) from file descriptor 0
* timeout is in tenths of seconds
*/
readline(timeout)
{
static char byt[1];
fflush(stdout);
read(0, byt, 1);
return (byt[0]&0377);
}
flushmo()
{
fflush(stdout);
}
purgeline() {}
/* End of genie.c */